---
title:  Configuring and Running a Cluster
---

<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

You use the `gfsh` command-line utility to configure your Apache Geode cluster (also called a "distributed system"). The cluster configuration service persists the cluster configurations and distributes the configurations to members of the cluster. There are also several additional ways to configure a cluster.

You use `gfsh` to configure regions, disk stores, members, and other Geode objects. You also use `gfsh` to start and stop locators, servers, and Geode monitoring tools. As you execute these commands, the cluster configuration service persists the configuration. When new members join the cluster, the service distributes the configuration to the new members.

`gfsh` is the recommended means of configuring and managing your Apache Geode cluster, however you can still configure many aspects of a cluster using the older methods of the cache.xml and gemfire.properties files. See [cache.xml](../reference/topics/chapter_overview_cache_xml.html#cache_xml) and the [Reference](../reference/book_intro.html#reference) for configuration parameters. You can also configure some aspects of a cluster using a Java API. See [Managing Apache Geode](../managing/book_intro.html#managing_gemfire_intro).

-   **[Overview of the Cluster Configuration Service](../configuring/cluster_config/gfsh_persist.html)**

    The Apache Geode cluster configuration service persists cluster configurations created by `gfsh` commands to the locators in a cluster and distributes the configurations to members of the cluster.

-   **[Tutorial—Creating and Using a Cluster Configuration](../configuring/cluster_config/persisting_configurations.html)**

    A short walk-through that uses a single computer to demonstrate how to use `gfsh` to create a cluster configuration for a Geode cluster.

-   **[Deploying Application JARs to Apache Geode Members](../configuring/cluster_config/deploying_application_jars.html)**

    You can dynamically deploy your application JAR files to specific members or to all members in your distributed system. Geode automatically keeps track of JAR file versions; autoloads the deployed JAR files to the CLASSPATH; and auto-registers any functions that the JAR contains.

-   **[Using Member Groups](../configuring/cluster_config/using_member_groups.html)**

    Apache Geode allows you to organize your distributed system members into logical member groups.

-   **[Exporting and Importing Cluster Configurations](../configuring/cluster_config/export-import.html)**

    The cluster configuration service exports and imports configurations created using `gfsh` for an entire Apache Geode cluster.

-   **[Cluster Configuration Files and Troubleshooting](../configuring/cluster_config/gfsh_config_troubleshooting.html)**

    When you use the cluster configuration service in Geode, you can examine the generated configuration files in the `cluster_config` directory on the locator. `gfsh` saves configuration files at the cluster-level and at the individual group-level.

-   **[Loading Existing Configuration Files into Cluster Configuration](../configuring/cluster_config/gfsh_load_from_shared_dir.html)**

    To load an existing cache.xml or gemfire.properties configuration file into a new cluster, use the `--load-cluster-configuration-from-dir` parameter when starting up the locator.

-   **[Using gfsh to Manage a Remote Cluster Over HTTP or HTTPS](../configuring/cluster_config/gfsh_remote.html)**

    You can connect `gfsh` via HTTP or HTTPS to a remote cluster and manage the cluster using `gfsh` commands.

-   **[Deploying Configuration Files without the Cluster Configuration Service](../configuring/running/deploying_config_files.html)**

    You can deploy your Apache Geode configuration files in your system directory structure or in jar files. You determine how you want to deploy your configuration files and set them up accordingly.

-   **[Starting Up and Shutting Down Your System](../configuring/running/starting_up_shutting_down.html)**

    Determine the proper startup and shutdown procedures, and write your startup and shutdown scripts.

-   **[Running Geode Locator Processes](../configuring/running/running_the_locator.html)**

    The locator is a Geode process that tells new, connecting members where running members are located and provides load balancing for server use.

-   **[Running Geode Server Processes](../configuring/running/running_the_cacheserver.html)**

    A Geode server is a process that runs as a long-lived, configurable member of a client/server system.

-   **[Managing System Output Files](../configuring/running/managing_output_files.html)**

    Geode output files are optional and can become quite large. Work with your system administrator to determine where to place them to avoid interfering with other system activities.

-   **[Firewall Considerations](../configuring/running/firewall_ports_config.html)**

    You can configure and limit port usage for situations that involve firewalls, for example, between client-server or server-server connections.


